#include "BinarySearchTree.h"

void TestBinarySearchTree1()
{
	int arr[] = { 8,3,1,10,6,4,7,14,13 };

	BSTree<int> bt;

	for (auto e : arr)
	{
		bt.Insert(e);
	}

	bt.InOrder();

	cout << bt.Erase(13) << endl;
	bt.InOrder();

	cout << bt.Erase(14) << endl;
	bt.InOrder();
}

void TestBinarySearchTree2()
{
	int arr[] = { 8,3,1,10,6,4,7,14,13 };

	BSTree<int> bt;

	for (auto e : arr)
	{
		bt.Insert(e);
	}

	//bt.Erase(13);
	//bt.InOrder();

	//bt.Erase(14);
	//bt.InOrder();

	//bt.Erase(10);
	//bt.InOrder();

	//bt.Erase(8);
	//bt.InOrder();

	//bt.Erase(1);
	//bt.InOrder();

	//bt.Erase(3);
	//bt.InOrder();

}

void TestBinarySearchTree3()
{
	int arr[] = { 8,3,1,10,6,4,7,14,13 };

	BSTree<int> bt;

	for (auto e : arr)
	{
		bt.InsertR(e);
	}

	bt.InOrder();

	//bt.EraseR(14);
	//bt.InOrder();

	//bt.EraseR(13);
	//bt.InOrder();

	//bt.EraseR(8);
	//bt.InOrder();

	//for (auto e : arr)
	//{
	//	bt.EraseR(e);
	//	bt.InOrder();

	//}

	//cout << bt.FindR(13) << endl;
	//cout << bt.FindR(8) << endl;
	//cout << bt.FindR(2) << endl;

}

void TestBinarySearchTree4()
{
	int arr[] = { 8,3,1,10,6,4,7,14,13 };

	BSTree<int> bt1;

	for (auto e : arr)
	{
		bt1.InsertR(e);
	}

	bt1.InOrder();

	//BSTree<int> bt2(bt1);
	//bt2.InOrder();

	BSTree<int> bt3;

	bt3 = bt1;
	bt3.InOrder();

}

int main()
{
	//TestBinarySearchTree1();
	//TestBinarySearchTree2();
	//TestBinarySearchTree3();
	TestBinarySearchTree4();

	return 0;
}